#ifndef CORE_H
#define CORE_H

class CGraphicsManager;
class CLanguageManager;
class CFontManager;
class CInputManager;
class CActionToInput;
#include "Engine\Engine_Def.h"
#include "Base.h"
#include <d3dx9.h>
#include <string>
#include "Singleton\Singleton.h"
#include <vector>

class CCore: public CSingleton<CCore>
{
	public:
		CCore										(void): m_GraphicsManager(0), 
															m_FontManager(0), 
															m_LanguageManager(0),
															m_InputManager(0),
															m_ActionToInput(0){}
		~CCore										(void);
		void				Init					(HWND hWnd, const SEngineInitParams& params);
		void				DeInit					();
		void				Update					(float l_DeltaTime);
		void				Render					(float l_DeltaTime);
		CGraphicsManager*	GetGraphicsManager		() {return m_GraphicsManager;}
		CLanguageManager*	GetLanguageManager		() {return m_LanguageManager;}
		CFontManager*		GetFontManager			() {return m_FontManager;}
		CInputManager*		GetInputManager			() {return m_InputManager;}
	private:
		CGraphicsManager	*m_GraphicsManager;
		CLanguageManager	*m_LanguageManager;
		CFontManager		*m_FontManager;
		HWND				m_hWnd;
		CInputManager		*m_InputManager;
		CActionToInput		*m_ActionToInput;
};

#endif
